/**
 * 
 */
package com.rhf.core.db.services;

import java.util.List;

import com.rhf.core.commons.logging.AppLog;
import com.rhf.core.commons.logging.AppLogManager;
import com.rhf.core.db.factories.Factory;
import com.rhf.core.db.interfaces.Saison;
import com.rhf.core.dto.SaisonVO;

/**
 * @author fabiensaulnier
 * 
 */
public class SaisonService {

	/**
	 * Service pour r�cup�rer une saison
	 * 
	 * @param saisonId
	 * @return saison
	 * @throws Exception
	 */
	public static SaisonVO recupererSaison(int saisonId) throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();
		SaisonVO saisonVO = null;

		Saison saison = Factory.getSaisonDao();

		if (saison != null) {
			saisonVO = saison.recuperSaison(saisonId);
			appLog.debug("Chargement de la saison  [" + saisonId + "]");
		}

		return saisonVO;
	}

	/**
	 * Service pour r�cup�rer la liste des saisons
	 * 
	 * @return Liste des saisons
	 * @throws Exception
	 */
	public static List<SaisonVO> recupererListeSaison() throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();
		List<SaisonVO> list = null;

		Saison saison = Factory.getSaisonDao();

		if (list != null) {
			list = saison.recupererListeSaison();
			appLog.debug("Chargement de la liste des saisons");
		}

		return list;
	}

	/**
	 * Service pour ajouter une saison
	 * 
	 * @param saisonVO
	 * @return 1 si la saison est ajout�e sinon 0
	 * @throws Exception
	 */
	public static int ajouterSaison(SaisonVO saisonVO) throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();
		int nbLigneAffecte = 0;

		Saison saison = Factory.getSaisonDao();

		if (saison != null) {
			nbLigneAffecte = saison.ajouterSaison(saisonVO);
			appLog.debug("Ajout de la saison  [" + saisonVO.getLibelle() + "]");
		}

		return nbLigneAffecte;
	}

	/**
	 * Service pour modifier une saison
	 * 
	 * @param saisonVO
	 * @return 1 si la saison est ajout�e sinon 0
	 * @throws Exception
	 */
	public static int modifierSaison(SaisonVO saisonVO) throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();
		int nbLigneAffecte = 0;

		Saison saison = Factory.getSaisonDao();

		if (saison != null) {
			nbLigneAffecte = saison.modifierSaison(saisonVO);
			appLog.debug("Modification de la saison  ["
					+ saisonVO.getSaisonId() + "]");
		}

		return nbLigneAffecte;
	}

	/**
	 * Service pour supprimer une saison
	 * 
	 * @param saisonVO
	 * @return 1 si la saison est ajout�e sinon 0
	 * @throws Exception
	 */
	public static int supprimerSaison(int saisonId) throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();
		int nbLigneAffecte = 0;

		Saison saison = Factory.getSaisonDao();

		if (saison != null) {
			nbLigneAffecte = saison.supprimerSaison(saisonId);
			appLog.debug("Modification de la saison  [" + saisonId + "]");
		}

		return nbLigneAffecte;
	}

}
